<?
$sub_menu = "300100";
include_once("./_common.php");

auth_check($auth[$sub_menu], "w");

//$target_table   = mysql_real_escape_string(trim($_POST['target_table']));
//$target_subject = mysql_real_escape_string(trim($_POST['target_subject']));
$target_table   = trim($_POST['target_table']);
$target_subject = trim($_POST['target_subject']);

if (!preg_match("/[A-Za-z0-9_]{1,20}/", $target_table)) 
{ 
    alert("게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)"); 
}

$row = sql_fetch(" select count(*) as cnt from $g4[board_table] where bo_table = '$target_table' ");
if ($row[cnt])
    alert("{$target_table}은(는) 이미 존재하는 게시판 TABLE 입니다.\\n\\n복사할 TABLE로 사용할 수 없습니다.");

check_token();

// 게시판 테이블 생성
/*
$sql = get_table_define($g4[write_prefix] . $bo_table);
$sql = str_replace($g4[write_prefix] . $bo_table, $g4[write_prefix] . $target_table, $sql);
sql_query($sql, 1, 1);
*/

// 게시판 테이블 생성
$file = file("./sql_write.sql");
$sql = implode($file, "\n");

$create_table = $g4[write_prefix] . $target_table;

// sql_board.sql 파일의 테이블명을 변환
$source = array("/__TABLE_NAME__/", "/;/");
$target = array($create_table, "");
$sql = preg_replace($source, $target, $sql);
sql_query($sql, 0, 1);
    


// 게시판 정보
$sql = " insert into $g4[board_table]
			(
			bo_table, 
			bo_subject, 
			gr_id, 
			bo_admin, 
			bo_list_level, 
			bo_read_level, 
			bo_write_level, 
			bo_reply_level, 
			bo_comment_level, 
			bo_upload_level, 
			bo_download_level, 
			bo_html_level, 
			bo_link_level, 
			bo_trackback_level, 
			bo_count_modify, 
			bo_count_delete, 
			bo_read_point, 
			bo_write_point, 
			bo_comment_point, 
			bo_download_point, 
			bo_use_category, 
			bo_category_list, 
			bo_disable_tags, 
			bo_use_secret, 
			bo_use_dhtml_editor, 
			bo_use_sideview, 
			bo_use_comment, 
			bo_use_good, 
			bo_use_nogood, 
			bo_use_signature, 
			bo_use_ip_view, 
			bo_use_trackback, 
			bo_use_list_view, 
			bo_use_list_content, 
			bo_table_width, 
			bo_subject_len, 
			bo_page_rows, 
			bo_new, 
			bo_hot, 
			bo_image_width, 
			bo_skin, 
			bo_include_head, 
			bo_include_tail, 
			bo_content_head, 
			bo_content_tail, 
			bo_insert_content, 
			bo_gallery_cols, 
			bo_upload_size, 
			bo_reply_order, 
			bo_use_search, 
			bo_order_search, 
			bo_notice, 
			bo_upload_count, 
			bo_use_email, 
			bo_sort_field, 
			bo_1_subj, 
			bo_2_subj, 
			bo_3_subj, 
			bo_4_subj, 
			bo_5_subj, 
			bo_6_subj, 
			bo_7_subj, 
			bo_8_subj, 
			bo_9_subj, 
			bo_10_subj, 
			bo_1, 
			bo_2, 
			bo_3, 
			bo_4, 
			bo_5, 
			bo_6, 
			bo_7, 
			bo_8, 
			bo_9, 
			bo_10)
			values(
            '$target_table',
            '$target_subject',
            '$board[gr_id]', 
            '$board[bo_admin]',
            $board[bo_list_level],
            $board[bo_read_level],
            $board[bo_write_level],
            $board[bo_reply_level],
            $board[bo_comment_level],
            $board[bo_upload_level],
            $board[bo_download_level],
            $board[bo_html_level],
            $board[bo_link_level],
            $board[bo_trackback_level],
            $board[bo_count_modify],
            $board[bo_count_delete],
            $board[bo_read_point],
            $board[bo_write_point],
            $board[bo_comment_point],
            $board[bo_download_point],
            $board[bo_use_category],
            '$board[bo_category_list]',
            '$board[bo_disable_tags]',
            $board[bo_use_secret],
            $board[bo_use_dhtml_editor],
            $board[bo_use_sideview],
            $board[bo_use_comment],
            $board[bo_use_good],
            $board[bo_use_nogood],
            $board[bo_use_signature],
            $board[bo_use_ip_view],
            $board[bo_use_trackback],
            $board[bo_use_list_view],
            $board[bo_use_list_content],
            $board[bo_table_width],
            $board[bo_subject_len],
            $board[bo_page_rows],
            $board[bo_new],
            $board[bo_hot],
            $board[bo_image_width],
            '$board[bo_skin]',
            '$board[bo_include_head]',
            '$board[bo_include_tail]',
            '".addslashes($board['bo_content_head'])."', 
            '".addslashes($board['bo_content_tail'])."', 
            '".addslashes($board['bo_insert_content'])."', 
            $board[bo_gallery_cols],
            $board[bo_upload_size],
            $board[bo_reply_order],
            $board[bo_use_search],
            $board[bo_order_search],
            '$board[bo_notice]',
            $board[bo_upload_count],
            $board[bo_use_email],
            '$board[bo_sort_field]',
            '$board[bo_1_subj]',
            '$board[bo_2_subj]',
            '$board[bo_3_subj]',
            '$board[bo_4_subj]',
            '$board[bo_5_subj]',
            '$board[bo_6_subj]',
            '$board[bo_7_subj]',
            '$board[bo_8_subj]',
            '$board[bo_9_subj]',
            '$board[bo_10_subj]',
            '$board[bo_1]',
            '$board[bo_2]',
            '$board[bo_3]',
            '$board[bo_4]',
            '$board[bo_5]',
            '$board[bo_6]',
            '$board[bo_7]',
            '$board[bo_8]',
            '$board[bo_9]',
            '$board[bo_10]')";

	sql_query($sql,1,1);

// 게시판 폴더 생성
@mkdir("$g4[path]/data/file/$target_table", 0707);
@chmod("$g4[path]/data/file/$target_table", 0707);

// 디렉토리에 있는 파일의 목록을 보이지 않게 한다.
$board_path = "$g4[path]/data/file/$target_table";
$file = $board_path . "/index.php";
$f = @fopen($file, "w");
@fwrite($f, "");
@fclose($f);
@chmod($file, 0606);

$copy_file = 0;
if ($copy_case == "schema_data_both") 
{
    $d = dir("$g4[path]/data/file/$bo_table");
    while ($entry = $d->read()) 
    {
        if ($entry == "." || $entry == "..") continue;

        @copy("$g4[path]/data/file/$bo_table/$entry", "$g4[path]/data/file/$target_table/$entry");
        @chmod("$g4[path]/data/file/$target_table/$entry", 0707);

        $copy_file++;
    }
    $d->close();

    // 글복사
    $sql = " insert into $g4[write_prefix]$target_table select * from $g4[write_prefix]$bo_table ";
    sql_query($sql,1,1);

    // 게시글수 저장
    $sql = " select bo_count_write, bo_count_comment from $g4[board_table] where bo_table = '$bo_table' ";
    $row = sql_fetch($sql);
    $sql = " update $g4[board_table] set bo_count_write = $row[bo_count_write], bo_count_comment = $row[bo_count_comment] where bo_table = '$target_table' ";
    sql_query($sql,1,1);

    // 05.05.24
    // 파일테이블 복사
    //$sql = " insert into $g4[board_file_table] select '$target_table', wr_id, bf_no, bf_source, bf_file, bf_download, bf_content from $g4[board_file_table] where bo_table = '$bo_table' ";
    //sql_query($sql, 1, 1);

    // 4.00.01
    // 위의 코드는 같은 테이블명을 사용하였다는 오류가 발생함. (희한하네 ㅡㅡ;)
    $sql = " select * from $g4[board_file_table] where bo_table = '$bo_table' ";
    $result = sql_query($sql);
    $file_copy = array();
    for ($i=0; $row=sql_fetch_array($result); $i++) 
        $file_copy[$i] = $row;
}   

if (count($file_copy)) 
{
    for ($i=0; $i<count($file_copy); $i++)
    {
        $sql = " insert into $g4[board_file_table] (" .
				"bo_table, wr_id, bf_no, bf_source, bf_file, " .
				"bf_download, bf_content, bf_filesize, bf_width, bf_height, " .
				"bf_type, bf_datetime)" .
				"values(" . 
				"'$target_table', {$file_copy[$i][wr_id]}, {$file_copy[$i][bf_no]}, '{$file_copy[$i][bf_source]}', '{$file_copy[$i][bf_file]}', " .
				"{$file_copy[$i][bf_download]}, '{$file_copy[$i][bf_content]}', {$file_copy[$i][bf_filesize]}, {$file_copy[$i][bf_width]}, {$file_copy[$i][bf_height]}, " .
				"{$file_copy[$i][bf_type]}, '{$file_copy[$i][bf_datetime]}') ";
        sql_query($sql, 0,1);
    }
}

$msg = "게시판 복사 : {$bo_table} -> {$target_table}";
if ($copy_file)
	$msg .= "\\n\\n복사한 파일 : 총 {$copy_file}개";

//alert($msg);
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=$g4[charset]\">";	
echo "<script language='javascript'>";
echo "alert('$msg');";
echo "opener.document.location.reload();";
echo "window.close();";
echo "</script>";

//goto_url("./board_copy.php?bo_table=$bo_table&$qstr");
?>
